diff --git a/system/drivers/DB_active_record.php b/system/drivers/DB_active_record.php
index c7e4f09..af12d9d 100644
--- a/system/drivers/DB_active_record.php
+++ b/system/drivers/DB_active_record.php
@@ -390,7 +390,7 @@
 	{
 		if (trim($direction) != '')
 		{
-			$direction = (in_array(strtoupper(trim($direction)), array('ASC', 'DESC'))) ? ' '.$direction : ' ASC';
+			$direction = (in_array(strtoupper(trim($direction)), array('ASC', 'DESC', 'RAND()'))) ? ' '.$direction : ' ASC';
 		}
 		
 		$this->ar_orderby[] = $orderby.$direction;
diff --git a/system/helpers/cookie_helper.php b/system/helpers/cookie_helper.php
index 24e243d..fc5920f 100644
--- a/system/helpers/cookie_helper.php
+++ b/system/helpers/cookie_helper.php
@@ -55,6 +55,22 @@
 		}
 	}
 	
+	// Set the config file options
+	$obj =& get_instance();
+	
+	if ($prefix == '' AND $obj->config->item('cookie_prefix') != '')
+	{
+		$obj->config->item('cookie_prefix');
+	}
+	if ($domain == '' AND $obj->config->item('cookie_domain') != '')
+	{
+		$obj->config->item('cookie_domain');
+	}
+	if ($prefix == '/' AND $obj->config->item('cookie_path') != '/')
+	{
+		$obj->config->item('cookie_path');
+	}
+		
 	if ( ! is_numeric($expire))
 	{
 		$expire = time() - 86500;
@@ -73,5 +89,38 @@
 	
 	setcookie($prefix.$name, $value, $expire, $path, $domain, 0);
 }
+	
+// --------------------------------------------------------------------
+
+/**
+ * Fetch an item from the COOKIE array
+ *
+ * @access	public
+ * @param	string
+ * @param	bool
+ * @return	mixed
+ */
+function get_cookie($index = '', $xss_clean = FALSE)
+{
+	$obj =& get_instance();
+	return $obj->input->cookie($index, $xss_clean);
+}
+
+// --------------------------------------------------------------------
+
+/**
+ * Delete a COOKIE
+ *
+ * @param	mixed
+ * @param	string	the cookie domain.  Usually:  .yourdomain.com
+ * @param	string	the cookie path
+ * @param	string	the cookie prefix
+ * @return	void
+ */
+function delete_cookie($name = '', $domain = '', $path = '/', $prefix = '')
+{
+	set_cookie($name, '', '', $domain, $path, $prefix);
+}
+
 
 ?>
\ No newline at end of file
diff --git a/system/libraries/Validation.php b/system/libraries/Validation.php
index 065e7a2..f9b51d7 100644
--- a/system/libraries/Validation.php
+++ b/system/libraries/Validation.php
@@ -524,7 +524,7 @@
 	 */	
 	function numeric($str)
 	{
-		return ( ! is_numeric($str)) ? FALSE : TRUE;
+		return ( ! ereg("^[0-9]+$", $str)) ? FALSE : TRUE;
 	}
 	
 	// --------------------------------------------------------------------
diff --git a/user_guide/general/changelog.html b/user_guide/general/changelog.html
index ca04b14..80ffe7a 100644
--- a/user_guide/general/changelog.html
+++ b/user_guide/general/changelog.html
@@ -71,10 +71,13 @@
 <li>Added <a href="../helpers/inflector_helper.html">Inflector helper</a>.</li>
 <li>Added element() function in the <a href="../helpers/array_helper.html">array helper</a>.</li>
 <li>Added <a href="../libraries/output.html">$this->output->set_header()</a> function, which allows you to set server headers.</li>
+<li>Added RAND() to active record orderby() function.</li>
+<li>Added <dfn>delete_cookie()</dfn> and <dfn>get_cookie()</dfn> to <a href="../helpers/cookie_helper.html">Cookie helper</a>, even though the input class has a cookie fetching function.</li>
 <li>Removed the is_numeric test from the db->escape() function.</li>
 <li>Fixed a MySQLi bug that was causing error messages not to contain proper errror data.</li>
 <li>Fixed a bug in the email class which was causing it to ignore explicitly set alternative headers.</li>
 <li>Fixed a bug that was causing a PHP error when the Exceptions class was called within the _get_config() function.</li>
+<li>Fixed an oversight in the cookie helper in which the config file cookie settings were not being honored.</li>
 <li>Added some code to allow email attachments to be reset when sending batches of email.</li>
 <li>Deprecated the following database functions: $this->db->smart_escape_str() and $this->db->fields().</li>
 </ul>
diff --git a/user_guide/helpers/cookie_helper.html b/user_guide/helpers/cookie_helper.html
index 3e89df7..9c17cdd 100644
--- a/user_guide/helpers/cookie_helper.html
+++ b/user_guide/helpers/cookie_helper.html
@@ -76,7 +76,7 @@
 <h2>set_cookie()</h2>
 
 <p>Sets a cookie containing the values you specify.  There are two ways to pass information this function so that a cookie can be set:
-Arrray Method, and Discreet Parameters:</p>
+Array Method, and Discreet Parameters:</p>
 
 <h4>Array Method</h4>
 
@@ -112,6 +112,30 @@
 
 <code>set_cookie($name, $value, $expire, $domain, $path, $prefix);</code>
 
+<h2>get_cookie()</h2>
+
+<p>Lets you fetch a cookie.  The first parameter will contain the name of the cookie you are looking for:</p>
+
+<code>get_cookie('some_cookie');</code>
+
+<p>The function returns FALSE (boolean) if the item you are attempting to retrieve does not exist.</p>
+
+<p>The second optional parameter lets you run the data through the XSS filter.  It's enabled by setting the second parameter to boolean TRUE;</p>
+
+<code>get_cookie('some_cookie', TRUE);</code>
+
+
+
+<h2>delete_cookie()</h2>
+
+<p>Lets you delete a cookie.  Unless you've set a custom path or other values, only the name of the cookie is needed:</p>
+
+<code>delete_cookie("name");</code>
+
+<p>This function is otherwise identical to <dfn>set_cookie()</dfn>, except that it does not have the value and expiration parameters.  You can submit an array 
+of values in the first parameter or you can set discreet parameters.</p>
+
+<code>delete_cookie($name, $domain, $path, $prefix)</code>
 
 
 </div>
diff --git a/user_guide/libraries/database/active_record.html b/user_guide/libraries/database/active_record.html
index 793f41f..b45c5d1 100644
--- a/user_guide/libraries/database/active_record.html
+++ b/user_guide/libraries/database/active_record.html
@@ -354,7 +354,7 @@
 	
 <h2>$this->db->orderby();</h2>
 <p>Lets you set an ORDER BY clause. The first parameter contains the name of the column you would like to order by. 
-The second parameter lets you set the direction of the result.  Options are <kbd>asc</kbd> or <kbd>desc</kbd></p>
+The second parameter lets you set the direction of the result.  Options are <kbd>asc</kbd> or <kbd>desc</kbd> or <kbd>RAND()</kbd></p>
 	
 <code>$this->db->orderby("title", "desc");
 <br /><br />// Produces: ORDER BY title DESC
